import { create } from "zustand";
import { persist } from 'zustand/middleware';
import { immer } from 'zustand/middleware/immer';
import { LoginStoreType, UserInfoType } from "./types";

// const useLoginStore = create<LoginStoreType>((set, get) => ({
//     immer(
//         persist((set) => {
//             token: ""; // 定义：token
//             user_info: null; // 定义：用户信息

//             setToken: (token: string) => set((state: LoginStoreType) => { state.token = token }); // 设置：token
//             setUserinfo: (data: UserInfoType) => set((state: LoginStoreType) => { state.user_info = data }); // 设置：用户信息
//         }),
// {
//     name: 'loginStore',
//     storage: localStorage,
// }
// )
//     // token: "", // 定义：token
//     // user_info: null, // 定义：用户信息

//     // setToken: (token) => set({ token }), // 设置：token
//     // getToken: () => get().token, // 获取：token
//     // setUserinfo: (data: UserInfoType) => set({ user_info: data }), // 设置：用户信息
//     // getUserinfo: () => get().user_info, // 获取：用户信息
// }));

const useLoginStore = create<LoginStoreType>()(
    immer(
        persist((set) => ({
            token: "",
            user_info: null,
            setToken: (token: string) => set((state: LoginStoreType) => { state.token = token }), // 设置：token
            setUserinfo: (data: UserInfoType) => set((state: LoginStoreType) => { state.user_info = data }), // 设置：用户信息  
        }),
            {
                name: 'login-storage',
                partialize: (state) => ({
                    token: state.token, user_info: state.user_info
                }) // 持久化
            }
        )
    )
)



export default useLoginStore;
